#include <bits/stdc++.h>
using namespace std;
using ll = long long;

/* 高精度数标准
A: 使用 int bignum[] 数组表示，bignum[0] 代表高精度数的位数，数字按低位到高位依次存放在 bignum[1...n] 中
*/

/**
 * 低精度乘高精度
 * bignum: A 类标准的高精度数
 * factor: 因数
 * 
 * 使用竖式乘法进行计算
 * 
 * 时间复杂度: O(log(n))
 */
void LMH(int bignum[], int factor)
{
    int carry = 0;
    int i = 1;
    for (; i <= bignum[0]; i++)
    {
        carry += bignum[i] * factor;
        bignum[i] = carry % 10;
        carry /= 10;
    }
    for (; carry; i++)
    {
        bignum[i] = carry % 10;
        carry /= 10;
    }
    bignum[0] = i - 1;
}